package com.visionet.waveletData.web.service.foundation;

import java.util.List;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springside.modules.mapper.JsonMapper;

import com.visionet.waveletData.web.common.utilities.MessageSourceHelper;
import com.visionet.waveletData.web.service.KeyWord;
import com.visionet.waveletData.web.service.account.AccountService;
import com.visionet.waveletData.web.web.BaseController;
import com.visionet.waveletData.web.webservice.rest.RestException;

//@Service
//public class SearcherService {
//	
//	@Autowired
//	private AccountService accountService;
//	
//	public String getSolrUrl(Map<String,String> param,String baseUrl){
//		
//		String queryParam = param.get("select");
//		if(queryParam == null){
//			throw new RestException(MessageSourceHelper.GetMessages("app.service.business.foundation.SearcherService.parm.error"));
//		}
//		
//		JsonMapper mapper = new JsonMapper();
//		//查询项
//		queryParam = queryParam.replaceAll(" ", "||");
//		String getUrl = baseUrl + "select?q=ss_common:"+ queryParam + "&wt=json";
//		if(AccountService.isSupervisor(BaseController.getCurrentUserId())){	//超级管理员
//			
////		}else if(accountService.isAdmin(BaseController.getCurrentUserId())){	//普通管理员
////			getUrl += "&fq=org_id:"+BaseController.getCurrentOrgId();
//		}else{																//普通用户
////			getUrl += "&fq=org_id:"+BaseController.getCurrentOrgId();
//
//		}
//		
//		//模块筛选项
//		String moduleFilter = param.get("module");
//		if(moduleFilter!=null && !moduleFilter.isEmpty()){
//			getUrl+="&fq=s_table:"+moduleFilter;
//			if("STREAM".equals(moduleFilter)){
//				getUrl += "&fq=ss_receiver:\\\""+BaseController.getCurrentUserId()
//						+ "\\\"\\: || ss_to_source:"+KeyWord.STREAM_SEND_ALL+" || s_create_by:" +BaseController.getCurrentUserId();
//			}
//		}else{
//			getUrl += "&fq=ss_receiver:\\\""+BaseController.getCurrentUserId()
//					+ "\\\"\\: || ss_to_source:"+KeyWord.STREAM_SEND_ALL+" || s_create_by:" +BaseController.getCurrentUserId();
//		}
//		
//		//日期筛选项
//		String dateFilter = param.get("date");
//		if(dateFilter!=null && !dateFilter.isEmpty()){
//			getUrl+="&fq=s_create_date:"+dateFilter;
//		}
//		
//		//创建人筛选项
//		String createByFilter = param.get("createBy");
//		if(createByFilter!=null && !createByFilter.isEmpty()){
//			List<Integer> createBys = mapper.fromJson(createByFilter, List.class);
//			StringBuffer userfq = new StringBuffer("&fq=");
//			if(createBys!=null){
//				for(Integer userId:createBys){
//					if(userfq.length()==4) userfq.append("s_create_by:").append(userId);
//					else userfq.append(" || s_create_by:").append(userId);
//				}
//			}else{
//				userfq.append("s_create_by:").append(createByFilter);
//			}
//			getUrl+=userfq;
//		}
//		
//		//排序
//		String sort = param.get("sort");
//		if(sort!=null && !sort.isEmpty()){
//			getUrl+="&sort="+sort;
//		}else{
//			getUrl+="&sort=s_create_date desc";
//		}
//		
//		//起始数
//		String start = param.get("start");
//		if(start!=null && !start.isEmpty()){
//			getUrl+="&start="+start;
//		}
//		//显示条数
//		String rows = param.get("rows");
//		if(rows!=null && !rows.isEmpty()){
//			getUrl+="&rows="+rows;
//		}
//		
//		//高亮
//		getUrl += "&indent=true&hl=true&hl.fl=ss_stream_text,ss_title_name&hl.simple.pre=<i class='highlight'>&hl.simple.post=</i class='highlight'>";
//		
//		return getUrl;
//	}
//	
//	public String getAdminSolrUrl(Map<String,String> param,String baseUrl){
//		String queryParam = param.get("select");
//		if(queryParam == null){
//			throw new RestException(MessageSourceHelper.GetMessages("app.service.business.foundation.SearcherService.parm.error"));
//		}
//		String getUrl = baseUrl + "select?"+ queryParam;
//		if(AccountService.isSupervisor(BaseController.getCurrentUserId())){	//超级管理员
//			
//		}else if(accountService.isAdmin(BaseController.getCurrentUserId())){	//普通管理员
////			getUrl += "&fq=org_id:"+BaseController.getCurrentOrgId();
//		}else{																//普通用户
////			getUrl += "&fq=org_id:"+BaseController.getCurrentOrgId();
//			getUrl += "&fq=ss_receiver:\\\""+BaseController.getCurrentUserId()+"\\\"\\: " +
//					"|| ss_to_source:"+KeyWord.STREAM_SEND_ALL+" || s_create_by:" +BaseController.getCurrentUserId()
//					+" || -s_table:STREAM";
//		}
//		
//		return getUrl;
//	}
//
//}
